Nearest known person directory function

ABSTRACT

A system for matching nearest contacts in a logical contact hierarchy can include a logical contact hierarchy disposed in a database; and, a hierarchical query processor coupled to the logical contact hierarchy. The hierarchical query processor can be configured to produce a closest matching contact from among contacts in the logical contact hierarchy based upon a specified anchor contact in the logical contact hierarchy. A boolean operator further can be programmed to select a closest matching contact based upon a boolean expression operating upon multiple closest matching contacts produced by the hierarchical query processor.

BACKGROUND OF THE INVENTION Statement of the Technical Field

The present invention relates to the field of groupware, and moreparticularly to contact management.

Description of the Related Art

Contact management predates the use of personal computers and has formedthe foundation of organizational communications. Early attempts atmanaging external contacts include the simple address book, theRolodex™, the Filofax™ and straightforward customer lists. Internally,organizational contacts had been managed through traditional internallydistributed phone lists and direct-dial tables. More recently, contactmanagement has been automated through the use of electronic addressbooks, sometimes coupled to electronic mail address books. At theextreme, full-blown personal information management applications providecomprehensive contact management facilities and such applicationsrepresent the lifeblood of the sales industry.

While contact management applications serve the purpose of storingcontacts for easy, fast retrieval, contact management applicationscannot in of themselves provide an abstract representation of therelationship between contacts and contact characteristics, including jobtitle, location, expertise, etc. Organizational charts typically form anabstract representation of contacts in a firm as the contacts relate toone another. Drawing programs, and even organizational chart programs,provide an electronic method of creating and managing contacts in anorganizational chart. Still, organizational charts alone cannot relatecontacts to one another based upon the type of query typical in acontact management application.

In this regard, contact management applications typically provide theend user with the ability to query the application for a person having aparticular static characteristic such as last name, address, department,title, and the like. Yet, relational queries such as, “Find the personwhose office is closest to my office” are not possible usingconventional contact management applications. Worse yet, booleanoperations implicating relations between contacts remain similarlyimpossible. Thus, as an example, the boolean operation “Find the personwhose office is closest either to my office or the office of mysupervisor” remains an impossibility for conventional contact managementsystems.

SUMMARY OF THE INVENTION

The present invention is a nearest known person directory function forcontact management systems which overcomes the deficiencies ofconventional contact management systems and provides a novel andnon-obvious method and system for conducting boolean operationsimplicating relations between contacts in a contact management system. Amethod for matching nearest contacts in a logical contact hierarchy, caninclude establishing an anchor contact in the logical contact hierarchy.In this regard, the logical contact hierarchy can be a hierarchicalstructure of contacts in which the position of each contact in thehierarchy is based upon the relationship between other contacts in thehierarchy. As an example, such relationship can include the officelocations of the contacts with respect to one another, the seniority ofa contact within an organization as expressed in terms of supervisorycapacity, rank, role or tenure, and any other differentiatingcharacteristics.

In accordance with the inventive arrangements, a distance within thelogical contact hierarchy can be computed between the anchor contact anda selected contact for each contact in the logical contact hierarchy. Inthis regard, a relationship can be established between the anchorcontact and the selected contact for each contact in the hierarchy.Subsequently, the magnitude of that relationship can be measured toidentify the distance between the contacts within the logical hierarchy.Finally, a contact can be selected as a closest matching contact fromamong the contacts in the logical contact hierarchy having a shortestcomputed distance in the logical contact hierarchy.

Notably, each of the establishing, computing and selecting steps can berepeated for at least one additional anchor contact in the logicalcontact hierarchy. Subsequently, at least one boolean operation can beperformed on each closest matching contact produced by the repeatingstep for each anchor contact to compute a boolean closest matchingcontact in the logical contact hierarchy. In one aspect of theinvention, the logical contact hierarchy can define a hierarchicalstructure of seniority or superiority (in terms of role, tenure orsupervisory capacity) of employees in an organization. Alternatively,the logical contact hierarchy can define office locations of contacts inan organization.

In this regard, the distance between office locations of contacts in anorganization can be seen as a continuous function which requires anordering of contacts in terms of nearest to furthest. It will berecognized by one skilled in the art that the continuous nature ofdistance does not lend itself as naturally to a hierarchical structureas other types of relationships, for instance seniority or superiority.Yet, though an ordering of contacts in terms of distance remains thedegenerate case of a hierarchy, the invention still can accommodate sucha structure simply by computing the distance between contacts along ahierarchy structured as a linear path.

A system for matching nearest contacts in a logical contact hierarchycan include a logical contact hierarchy disposed in a database; and, ahierarchical query processor coupled to the logical contact hierarchy.The hierarchical query processor can be configured to produce a closestmatching contact from among contacts in the logical contact hierarchybased upon a specified anchor contact in the logical contact hierarchy.A boolean operator further can be programmed to select a closestmatching contact based upon a boolean expression operating upon multipleclosest matching contacts produced by the hierarchical query processor.

BRIEF DESCRIPTION OF THE DRAWINGS

There are shown in the drawings embodiments which are presentlypreferred, it being understood, however, that the invention is notlimited to the precise arrangements and instrumentalities shown,wherein:

FIG. 1 is a pictorial illustration of a system and method for matchingnearest contacts in a contact hierarchy in accordance with one aspect ofthe inventive arrangements; and,

FIG. 2 is a flow chart illustrating a process for computing a booleanoutcome for nearest matching contacts in the contact hierarchy of FIG.1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention is a system, method and apparatus for matchingnearest contacts in a contact hierarchy. In particular, booleanoperations can be performed in nearest matches for multiple contacts inthe hierarchy. In this way, intra-contact relationships can be computedwhich can include geographic distances, rankings of authority,departmental distinctions and the like. More particularly, where therelationships between contacts in an organization can be modeled withina hierarchy, regardless of the type of relationship, the nearestmatching contact system and method of the present invention can computea nearest match for a specified anchor contact, or a contact resultingfrom a boolean operation of two or more nearest matches for a specifiedanchor contact.

FIG. 1 is a pictorial illustration of a system and method for matchingnearest contacts in a contact hierarchy in accordance with one aspect ofthe inventive arrangements. In accordance with the present invention, acontact database 150 can include a set of organizational contacts 160which can be organized into a logical hierarchy 170 based upon therelationship between each of the contacts 160. In this regard, a set oforganizational contacts 160 can be stored with suitable data toreproduce the hierarchy 170, or a separate table can be produced basedupon the stored organizational contacts 160 to produce the hierarchy170. In any case, the hierarchy 170 itself can represent a hierarchicalstructure of contacts based upon any contact characteristic, such ascontact seniority within the organization, contact location, and thelike.

A hierarchical query processor 140 can be included in the system of thepresent invention. The hierarchical query processor 140 can processrequests 120 from requestors 110 for matching a nearest contact basedupon an anchor contact reference. In this regard, the hierarchical queryprocessor 140 can traverse the hierarchy 170 to determine which contactcan be determined to be closest to the anchor contact reference withinthe hierarchy 170. Once again, by reference to “closest”, it is meantthat a contact is closest relationally to the anchor contact, ratherthan merely geographically. Thus, the hierarchical query processor 140can perform a relationship function that determines the magnitude of agiven relationship between an anchor and a contract in the hierarchy170.

To that end, where the hierarchy 170 represents a logical hierarchicalstructure of seniority rather than geographic positioning, “closest” canrefer to the contact which is related to the anchor contact at theclosest level of seniority. By comparison, where the hierarchy 170represents logical hierarchical structure of the location of contacts ina building or corporate campus, “closest” can refer to the contact whoseoffice is most proximate to the anchor contact. In any event, thehierarchical query processor 140 can determine the closest match to theanchor contact in the hierarchy 170 and can produce such closest matchas a result 130.

FIG. 2 is a flow chart illustrating a process for computing a booleanoutcome for nearest matching contacts in the contact hierarchy ofFIG. 1. Beginning in block 205, an anchor contact within the hierarchycan be established to form the basis of a matching exercise. In block210 the first contact in the directory of contacts can be selected. Inblock 215, the hierarchy can be traversed from the selected contact tothe anchor contact. Finally, in block 220, a distance can be computedfrom the selected contact to the anchor contact. Once computed, thedistance can be associated with the selected contact, for instance bywriting a distance record to a contact node in a list of contacts.

In decision block 225, it can be determined whether additional contactsremain to be analyzed in respect to the anchor contact. If so, in block230 a next contact can be selected in the directory and the process ofblocks 215 through 225 can repeat. Otherwise, when no further contactsremain to be analyzed, in block 235 the list of contacts and theirassociated distances can be sorted according to distance. In block 240,the contact having the shortest distance to the anchor contact can bestored as the “nearest” or “closest” matching contact.

Notably, in accordance with the inventive arrangements, booleanoperations can be performed on individually located nearest contacts.For instance, the query, “Find the person whose office is closest eitherto my office or the office of my supervisor” can be supported byconducting two separate closest matching contact analyses, followed by aboolean evaluation of both results. To support boolean operations inthis way, in decision block 245 it can be determined whether a booleanoperation has been set forth in a query.

If not, in block 250 the stored result simply can be returned.Otherwise, the process can continue through blocks 255 through 265.Specifically, if in decision block 255, for the additional query, anadditional anchor contact will be required, in block 260 the additionalanchor contact can be established and the closest matching process canrepeat in blocks 210 through 245. Once complete, in block 265 theboolean operation can be performed upon the stored closest matches foreach anchor contact. The result can be returned in block 250.

The present invention can be realized in hardware, software, or acombination of hardware and software. An implementation of the methodand system of the present invention can be realized in a centralizedfashion in one computer system, or in a distributed fashion wheredifferent elements are spread across several interconnected computersystems. Any kind of computer system, or other apparatus adapted forcarrying out the methods described herein, is suited to perform thefunctions described herein.

A typical combination of hardware and software could be a generalpurpose computer system with a computer program that, when being loadedand executed, controls the computer system such that it carries out themethods described herein. The present invention can also be embedded ina computer program product, which comprises all the features enablingthe implementation of the methods described herein, and which, whenloaded in a computer system is able to carry out these methods.

Computer program or application in the present context means anyexpression, in any language, code or notation, of a set of instructionsintended to cause a system having an information processing capabilityto perform a particular function either directly or after either or bothof the following a) conversion to another language, code or notation; b)reproduction in a different material form. Significantly, this inventioncan be embodied in other specific forms without departing from thespirit or essential attributes thereof, and accordingly, referenceshould be had to the following claims, rather than to the foregoingspecification, as indicating the scope of the invention.

We claim:
 1. A method for matching nearest contacts in a logical contacthierarchy, the method comprising the steps of: establishing an anchorcontact in the logical contact hierarchy; computing a distance withinthe logical contact hierarchy between said anchor contact and a selectedcontact, for each contact in the logical contact hierarchy; and,selecting as a nearest matching contact, a contact from among contactsin said logical contact hierarchy having a shortest computed distancewithin the logical contact hierarchy.
 2. The method of claim 1, furthercomprising the steps of: repeating said establishing, computing andselecting steps for at least one additional anchor contact in thelogical contact hierarchy; and, performing at least one booleanoperation on each closest matching contact produced by said repeatingstep for each anchor contact to compute a boolean closest matchingcontact in the logical contact hierarchy.
 3. The method of claim 1,wherein the logical contact hierarchy defines a hierarchical structureof seniority of employees in an organization.
 4. The method of claim 1,wherein the logical contact hierarchy defines office locations ofcontacts in an organization.
 5. The method of claim 2, wherein thelogical contact hierarchy defines a hierarchical structure of seniorityof employees in an organization.
 6. The method of claim 2, wherein thelogical contact hierarchy defines office locations of contacts in anorganization.
 7. A system for matching nearest contacts in a logicalcontact hierarchy, comprising: a logical contact hierarchy disposed in adatabase; and, a hierarchical query processor coupled to said logicalcontact hierarchy and configured to produce a closest matching contactfrom among contacts in said logical contact hierarchy based upon aspecified anchor contact in said logical contact hierarchy.
 8. Thesystem of claim 7, further comprising a boolean operator programmed toselect a closest matching contact based upon a boolean expressionoperating upon multiple closest matching contacts produced by saidhierarchical query processor.
 9. The system of claim 7, wherein saidlogical contact hierarchy defines a hierarchical structure of seniorityof employees in an organization.
 10. The system of claim 7, wherein saidlogical contact hierarchy defines office locations of contacts in anorganization.
 11. The system of claim 8, wherein said logical contacthierarchy defines a hierarchical structure of seniority of employees inan organization.
 12. The system of claim 8, wherein said logical contacthierarchy defines office locations of contacts in an organization.
 13. Amachine readable storage having stored thereon a computer program formatching nearest contacts in a logical contact hierarchy, said computerprogram comprising a routine set of instructions for causing the machineto perform the steps of: establishing an anchor contact in the logicalcontact hierarchy; computing a distance within the logical contacthierarchy between said anchor contact and a selected contact, for eachcontact in the logical contact hierarchy; and, selecting as a closestmatching contact, a contact from among said logical contact hierarchyhaving a shortest computed distance in the logical contact hierarchy.14. The machine readable storage of claim 13, further comprising thesteps of: repeating said establishing, computing and selecting steps forat least one additional anchor contact in the logical contact hierarchy;and, performing at least one boolean operation on each closest matchingcontact produced by said repeating step for each anchor contact tocompute a boolean closest matching contact in the logical contacthierarchy.
 15. The machine readable storage of claim 13, wherein thelogical contact hierarchy defines a hierarchical structure of seniorityof employees in an organization.
 16. The machine readable storage ofclaim 13, wherein the logical contact hierarchy defines office locationsof contacts in an organization.
 17. The machine readable storage ofclaim 14, wherein the logical contact hierarchy defines a hierarchicalstructure of seniority of employees in an organization.
 18. The machinereadable storage of claim 14, wherein the logical contact hierarchydefines office locations of contacts in an organization.